Proc nelze kreslit do StatusBaru

Otázka od: Milan Cizek

5. 10. 2002 13:46

Ahoj,
mam nasledujici problem: snazim se vykreslit ikonu pred text ve statusbaru.
Nic se ale nezobrazi, kde je problem? Zkousel jsem to i pomoci
Windows.DrawIcon, ale vysledek je stejny. Jeste bych se chtel zeptat, je-li
mozne pristupovat k obrazkum v imagelistu primo, abych je napr. mohl
zobrazit prave ve statusbaru. Diky.

procedure TMainForm.StatusBarDrawPanel(StatusBar: TStatusBar; Panel:
TStatusPanel; const Rect: TRect);
var TMP_Rect: TRect;
begin
  TMP_Rect:=Rect;
  if Panel.Index=0 then
  with StatusBar do
  begin
    Canvas.Brush.Color:=Color;
    Canvas.FillRect(Rect);
    Canvas.Font.Color:=clBlue;

    Canvas.Draw(Rect.Left,Rect.Top,Icon);


//Windows.DrawText(Canvas.Handle,PChar(Panel.Text),Length(Panel.Text),TMP_Re
ct,DT_CENTER or DT_VCENTER);
  end;
end;


S pozdravem Milan Cizek, amatersky programator, D6.02 Ent
Win2k (SP2) a WinXP, cizek.milan@seznam.cz, ICQ: 59826637

Odpovedá: Vaclav Krmela

5. 10. 2002 14:43

> From: Milan Cizek
>
> snazim se vykreslit ikonu pred text ve statusbaru.
> Nic se ale nezobrazi, kde je problem?

Kazdy panel, ktery chces sam kreslit musi mit nastaveno
Style na psOwnerDraw. Podivej se do helpu na
TStatusBar.OnDrawPanel

> Jeste bych se chtel zeptat, je-li
> mozne pristupovat k obrazkum v imagelistu primo, abych je napr. mohl
> zobrazit prave ve statusbaru.

Podivej se do helpu na priklad. Je tam prave uvedeno
vykreslovani obrazku z ImageListu.

Ve tvem prikldu se odkazujes na ikonu Formu.
Ma tvuj Form vubec nejakou ikonu?

Vaclav Krmela

Odpovedá: Jaroslav Kuba

7. 10. 2002 10:40

Ahoj

Takto vykreslis obrazek z imaglistu do statusBaru napr v obsluze udalosti
StatusBarDrawPanel(StatusBar: TStatusBar; Panel:
> TStatusPanel; const Rect: TRect);

ImageList1.Draw (StatusBar.Canvas, Rect.Left + 2, Rect.Top + 1,
IndexObrazku);

> Ahoj,
> mam nasledujici problem: snazim se vykreslit ikonu pred text ve
statusbaru.
> Nic se ale nezobrazi, kde je problem? Zkousel jsem to i pomoci
> Windows.DrawIcon, ale vysledek je stejny. Jeste bych se chtel zeptat,
je-li
> mozne pristupovat k obrazkum v imagelistu primo, abych je napr. mohl
> zobrazit prave ve statusbaru. Diky.